function B = gaussianElimination(A)
%用高斯消元法(伴随矩阵法)求矩阵的逆
%   A:原矩阵
%   B:逆矩阵

n = size(A,1);  %方阵的维度
B = eye(n);  %初始化B矩阵为单位矩阵
for i0 = 1 : n
    pe = max(abs(A(i0 : n, i0)));   %寻找主元pe,max目的是通过主元判断矩阵是否可逆
    if pe == 0      %判断主元是否为0, 若是, 则矩阵A不是满秩矩阵,不存在逆矩阵
        disp("该矩阵A不存在逆矩阵")
        return;
    end
    %消去A的第i0列除去i0行以外的各行元素
    tmp1 = A(i0, i0);
    A(i0, :) = A(i0, :) / tmp1;   %主对角线上的元素变为1
    B(i0, :) = B(i0, :) / tmp1;   %伴随矩阵做相应变换
    for i1 = 1 : n
        if i1 ~= i0
            temp = A(i1, i0);
            A(i1, :) = A(i1, :) - A(i0, :) .* temp;
            B(i1, :) = B(i1, :) - B(i0, :) .* temp;
        end
    end
end
end